///----------------------------------
// Description:
// ------------
//
//	Definitions of objects used
//      by TopNtuple and analysis
//      classes.
//
//----------------------------------

#include "ObjectClass.hh"

//----------------------------------
// PMT
//----------------------------------
// Default constructor
PMT::PMT() {
  xpos = -999.;
  ypos = -999.;
  zpos = -999.;
  time = -999.;
  ekin = -999.;
}
PMT::PMT(float xx,float yy,float zz,float tt,float kinematicE) {
  xpos = xx;
  ypos = yy;
  zpos = zz;
  time = tt;
  ekin = kinematicE;
}
void PMT::SetObjects(float xx,float yy,float zz,float tt,float kinematicE){
  xpos = xx;
  ypos = yy;
  zpos = zz;
  time = tt;
  ekin = kinematicE;
}

//----------------------------------
// Particle
//----------------------------------
// Default constructor
Particle::Particle() {
  particlename = "null";
  processname = "null";
  volumename = "null";
  TrackID  = -999;
  ParentID = -999;
  xpre = -999.;
  ypre = -999.;
  zpre = -999.;
  xpos = -999.;
  ypos = -999.;
  zpos = -999.;
  edep = -999.;
  time = -999.;
  ekin = -999.;
}
void Particle::SetObjects(TString name,TString procname,TString volname,int trackid,int parentid,float xx1,float yy1,float zz1,float xx2,float yy2,float zz2,float depositE,float tt,float kineticE){
  particlename = name;
  processname = procname;
  volumename = volname;
  TrackID  = trackid;
  ParentID = parentid;
  xpre = xx1;
  ypre = yy1;
  zpre = zz1;
  xpos = xx2;
  ypos = yy2;
  zpos = zz2;
  edep = depositE;
  time = tt;
  ekin = kineticE;
}

//==================================================
// Macros for dictionaries, stream ops, Class() ...
//==================================================
ClassImp(PMT)
ClassImp(Particle)
